/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.perutaxi.segu;

import com.perutaxi.entidades.eRol;
import com.perutaxi.negocio.nRol;
import com.perutaxi.util.GenericMBean;
import java.io.Serializable;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.event.ActionEvent;

/**
 *
 * @author PeruTaxi
 */
@ManagedBean
@SessionScoped
public class RolMBean extends GenericMBean implements Serializable {

    private eRol rolFiltro;
    private eRol rol;
    private List<eRol> lista;
    private int accion; //1:nuevo, 2:editar, 3:ver
    private String titulo; //titulo del panel
    private final String urlLista = "/pages/segu/rol/listaRol.xhtml";
    private final String url = "/pages/segu/rol/rol.xhtml";

    public RolMBean() {
    }

    public String iniciar() {
        rolFiltro = new eRol();
        rolFiltro.setNombre("");
        rolFiltro.setDescripcion("");
        rolFiltro.setEstado(Boolean.TRUE);
        lista = null;

        return this.urlLista;
    }

    public void buscar(ActionEvent ae) {
        try {
            this.lista = nRol.obtenerRol(rolFiltro);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public String nuevo() {
        this.accion = 1;
        this.titulo = "NUEVO(A) ROL";
        this.rol = nRol.inicializar();

        return this.url;
    }

    public String editar() {
        this.accion = 2;
        this.titulo = "ACTUALIZAR ROL";

        return this.url;
    }

    public String ver() {
        this.accion = 3;
        this.titulo = "VER ROL";

        return this.url;
    }

    public String guardar() throws Exception {
        if (this.accion == 1) {
            Long id = Long.valueOf(nRol.obtenerTodos().size() + 1);
            rol.setId(id);
            if (nRol.guardar(rol)) {
                showMessage("SE HA GUARDADO CORRECTAMENTE");
                return this.editar();
            } else {
                showError("ERROR AL MOMENTO DE GUARDAR");
                return null;
            }
        } else {
            if (nRol.actualizar(rol)) {
                showMessage("SE HA GUARDADO CORRECTAMENTE");
                return this.editar();
            } else {
                showError("ERROR AL MOMENTO DE GUARDAR");
                return null;
            }
        }
    }

    public String retroceder() {
        buscar(null);
        return this.urlLista;
    }

    public eRol getRolFiltro() {
        return rolFiltro;
    }

    public void setRolFiltro(eRol rolFiltro) {
        this.rolFiltro = rolFiltro;
    }

    public eRol getRol() {
        return rol;
    }

    public void setRol(eRol rol) {
        this.rol = rol;
    }

    public List<eRol> getLista() {
        return lista;
    }

    public void setLista(List<eRol> lista) {
        this.lista = lista;
    }

    public int getAccion() {
        return accion;
    }

    public void setAccion(int accion) {
        this.accion = accion;
    }

    public String getTitulo() {
        return titulo;
    }

    public void setTitulo(String titulo) {
        this.titulo = titulo;
    }
}
